home *** CD-ROM | disk | FTP | other *** search
- #HYP2000
- {[000,4,7] }
- {[000,4,7] AMOS Professional System Equate }
- {[000,4,7] }
-
-
- Welcome to the AMOS Pro System Equates! This powerfull system enable you
- to directly access all Amiga Equates, in a symbolic manner. AMOS Pro allow
- you to have a clean, system friendly access to the ROM's library.
-
- Please select an option:
-
- {[32 ,6,3] How does it work? }
- {[90 ,6,3] Which equates are included? }
- {[140,6,3] How to add your own equates. }
-
- {[ADD,4,7] RUN and add equates to current file }
- {[CRE,4,7] RUN and create a new equate file }
-
- {[QUT,4,7] Quit }
-
-
-
-
-
-
-
-
-
-
-
- {[000,4,7] }
- {[000,4,7] How does it work? }
- {[000,4,7] }
-
-
- AMOS Pro offers four new instructions to deal with the equates (for more
- information, please refer to the AMOS Pro User Guide).
-
- =Equ("The_Equate")
- =Lvo("System_Function")
- =Struc(Address,"Position")=
- =Struc$(Address,"Position")=
-
- If during testing time AMOS Pro encounters one of the above instructions it
- will load the following file into memory:
-
- "AMOSPro_Tutorial:AMOSPro_System_Equates"
-
- AMOS Pro explores it, looking for the specified equate value. If the
- equate is found, its value is poked directly into the AMOS source code. It
- remains there until you change the line with the editor. Next time you
- test the program, AMOS Pro will simply verify that the equate has been
- defined and skip the instruction.
-
- This means that once the program has been tested, AMOS Pro will not need to
- load the Equate file (unless you change the source again). This allows you
- to send programs which contain Equates that someone else doesn't have
- access too. Or to someone who doesn't even have the equates file! For
- safe keeping, it's a good idea to place the =Equ("") instructions into
- closed procedures, ensuring they won't be changed by mistake.
-
- The Equate file remains in memory wherever possible. As long as a memory
- flush does not occur. So if you have enough RAM it will only be loaded
- once. Floppy disc users will have to keep inserting the disc with the
- equates file on if they don't have enough RAM. (If you're serious about
- developing you must have plenty of RAM and a hard disc). Close Editor and
- Kill Editor are the only instructions which will erase the Equate file.
- (If they are enabled within your configuration file.) This ensures enough
- RAM is freed when needed.
-
- ATTENTION: Set Equate Bank is no longer used. We have realised that the
- above method was much better. It saves using a bank for storage. To keep
- AMOS Pro's compatible, it is necessary to leave this command within the
- instruction set. But it has absolutely NO EFFECT!
-
-
- {[001,4,3] Back to Menu }
-
-
-
-
-
-
-
-
-
-
-
-
- {[000,4,7] }
- {[000,4,7] Which equates are included? }
- {[000,4,7] }
-
-
- The Amiga system has a LOT of equates. Inserting all of them into the
- equate file would have made it as big as 400k!
-
- Here is the list of files included in this file:
-
- All: dos.library, exec.library, math(s).library,
- icon.library _LVOs,
- "exec/exec.i"
- "dos/dos.i"
- "dos/dosextens.i"
- "libraries/locale.i"
-
- "devices/audio.i"
- "devices/bootblock.i"
- "devices/clipboard.i"
- "devices/gameport.i"
- "devices/parallel.i"
- "devices/printer.i"
- "devices/prtbase.i"
- "devices/prtgfx.i"
- "devices/scsidisk.i"
- "devices/serial.i"
- "devices/timer.i"
- "devices/trackdisk.i"
- "hardware/Custom.i"
- "rexx/errors.i"
- "rexx/rexxio.i"
- "rexx/rxslib.i"
- "rexx/storage.i"
-
- This means you have total control over dos and exec, any devices, arexx and
- the hardware chipset. If you can't find the equates you need for your
- applications then read the next chapter.
-
- {[001,4,3] Back to Menu }
-
-
-
-
-
-
-
-
-
-
-
- {[000,4,7] }
- {[000,4,7] How to add your own equate. }
- {[000,4,7] }
-
-
- There are two methods to achieve this task and it depends on the number of
- equates you want to add.
-
-
- 1. Simple method - using a text editor
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The equate file is a plain ASCII file. Just load it into your favourite
- text editor. You will see immediately that the structure of the file is
- very simple:
-
- The_Equate:$XXXXXXXX,Type
-
- * The_Equate is the name of the equate to be defined. Beware! Case is
- important. A colon must lie right at the end of name (no spaces).
-
- * $XXXXXXXX is the value of this equate. It can be hexadecimal, decimal,
- or binary (with a %).
-
- * Type defines the type of the equate:
-
- 0 Byte
- 1 Word, Bool
- 2 Long
- 3 UByte
- 4 UWord
- 5 ULong
- 6 APTR, FPRT, CPRR
- 7 No special type.
-
- The =Equ("") function returns any kind of equate, regardless of its kind.
-
- The =Lvo("") function also returns any kind of equates, but add an "_LVO"
- to the name of the specified equate before looking for it in the file.
-
- =STRUC= only works with equates of type 0 to 6
-
- =STRUC$= only works with equates of type 6
-
- How to add your new equate:
-
- * Go to the bottom of the file.
- * Type in your equate, no spaces and respecting the types (choose type 7 if
- you do not know).
- * Continue for every other equate you're adding.
- * Save your file.
-
-
- 2. Using Make_Equate.AMOS.
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- This program automatically converts a listing produced by an assembler into
- a file which AMOS Pro will understand. Make_Equates was used to produce
- the "AMOSPro_System_Equate" file on you master disc.
-
- How to proceed?
-
- * You should use Genam2 (or 3), in fact the assembler, Genim2.
-
- * You must create a source listing which includes all the files you want to
- grab the equates from. Here is the source used for the default equate
- file:
-
-
- ; Make sure all macros are listed
- OPT M+
-
- ; My own include directory,
- IncDir "Work:includes/i/"
-
- ; Let's go with the includes
- Include "exec/exec.i"
- Include "dos/dos.i"
- Include "dos/dosextens.i"
- Include "libraries/locale.i"
-
- Include "devices/audio.i"
- Include "devices/bootblock.i"
- Include "devices/clipboard.i"
- Include "devices/gameport.i"
- Include "devices/parallel.i"
- Include "devices/printer.i"
- Include "devices/prtbase.i"
- Include "devices/prtgfx.i"
- Include "devices/scsidisk.i"
- Include "devices/serial.i"
- Include "devices/timer.i"
- Include "devices/trackdisk.i"
- Include "hardware/Custom.i"
- Include "rexx/errors.i"
- Include "rexx/rexxio.i"
- Include "rexx/rxslib.i"
- Include "rexx/storage.i"
-
- * Under a CLI, you must assemble the source, with the "-p" option, this
- informs the assembler to produce a 2 pass assembly listing. Here is an
- example of the listing produced for the default file:
-
- 22 00.00000000 * unit defintions
- 23 =00000000 UNIT_MICROHZ EQU 0
- 24 =00000001 UNIT_VBLANK EQU 1
- 25 =00000002 UNIT_ECLOCK EQU 2
- 26 =00000003 UNIT_WAITUNTIL EQU 3
- 27 =00000004 UNIT_WAITECLOCK EQU 4
- 28 00.00000000
- 29 00.00000000 TIMERNAME MACRO
- 30 00.00000000 DC.B 'timer.device',0
- 31 00.00000000 DS.W 0
- 32 00.00000000 ENDM
- 33 00.00000000
- 34 00.00000000 STRUCTURE TIMEVAL,0
- 34 =00000000+ TIMEVAL EQU 0
- 34 =00000000+ SOFFSET SET 0
- 34 00.00000000 ENDM
- 35 00.00000000 ULONG TV_SECS
- 35 =00000000+ TV_SECS EQU SOFFSET
- 35 =00000004+ SOFFSET SET SOFFSET+4
- 35 00.00000000 ENDM
- 36 00.00000000 ULONG TV_MICRO
- 36 =00000004+ TV_MICRO EQU SOFFSET
- 36 =00000008+ SOFFSET SET SOFFSET+4
- 36 00.00000000 ENDM
- 37 00.00000000 LABEL TV_SIZE
- 37 =00000008+ TV_SIZE EQU SOFFSET
- 37 00.00000000 ENDM
- 38 00.00000000
- 39 00.00000000 STRUCTURE ECLOCKVAL,0
- 39 =00000000+ ECLOCKVAL EQU 0
- 39 =00000000+ SOFFSET SET 0
- 39 00.00000000 ENDM
- 40 00.00000000 ULONG EV_HI
- 40 =00000000+ EV_HI EQU SOFFSET
- 40 =00000004+ SOFFSET SET SOFFSET+4
- 40 00.00000000 ENDM
- 41 00.00000000 ULONG EV_LO
- 41 =00000004+ EV_LO EQU SOFFSET
- 41 =00000008+ SOFFSET SET SOFFSET+4
- 41 00.00000000 ENDM
- 42 00.00000000 LABEL EV_SIZE
- 42 =00000008+ EV_SIZE EQU SOFFSET
- 42 00.00000000 ENDM
- 43 00.00000000
-
- No need to tell you that this can can be enormous (the default one is
- 600k!). I suggest you work on a hard-drive!
-
- * Once the .LST file is created, you run Make_Equates.AMOS. The program
- will explore the .LST file, line by line, and take any labels out of it.
- It automatically detects the type of the label from the listing,
- and creates the proper line for AMOS Pro.
-
- For security reasons the program works on a temporary file on the
- Ram Disc (you can set the path of the temporary file at the beginning of
- the program). When everything is finished you have the option of
- copying the new file over the old one.
-
- You can either:
-
- a) Create a new file
- b) Add labels to the existing file.
-
- In both cases, any label defined twice will not be added to the file. At
- the end of the process the number of new and duplicated labels is
- reported.
-
-
- {[001,4,3] Back to Menu }
-